package com.hbnu.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hbnu.system.model.dto.CheckBackDTO;
import com.hbnu.system.model.dto.SearchPageDTO;
import com.hbnu.system.model.dto.UserDTO;
import com.hbnu.system.model.entity.Construction;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
public interface IConstructionService extends IService<Construction> {

    /**
     * 新增学科建设
     * @param construction
     * @return 是否成功
     */
    boolean addConstruction(Construction construction);


    /**
     * 删除学科建设
     *
     */
    boolean deleteConstruction(String constructionID);

    /**
     * 修改学科建设
     *
     * @param construction
     * @return 是否成功
     */
    boolean updateConstruction(Construction construction);

    /**
     * 根据科研简报主键查询科研简报
     *
     * @param constructionID
     * @return Construction
     */
    Construction getConstruction(String constructionID);

    /**
     * 分页查询
     */
    IPage<Construction> pageCondition(SearchPageDTO searchPageDTO);

    /**
     * 校级审核通过科研简报
     */
    Boolean schoolCheckPass(String token,String constructionID);

    /**
     * 校级审核打回科研简报
     */
    Boolean schoolCheckBack(String token,CheckBackDTO checkBackDTO);

    /**
     * 普通用户分页查看与自己相关的科研简报
     */
    IPage<Construction> userGetRelateConstruction(UserDTO userDTO);

    /**
     * 校级管理员查看需要自己审核的科研简报
     */
    IPage<Construction> schoolUserGetConstruction(UserDTO userDTO);

    /**
     * 科研简报提交
     */
    Boolean CommitConstruction(String constructionID);
}
